package com.stefanini.pe.bbva.bp.in.to;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Ejecutivo implements Serializable{

	private static final long serialVersionUID = -1931221906029154371L;

	private String codigo;

	private boolean seleccionado;
	
	private String descripcion;

	private String numero;

	private String nivel;
	
	private String nombres;
	
	private String apePaterno;
	
	private String apeMaterno;

	private List<Ejecutivo> hijos;

	private String codCliente;

	private String nombresCliente;

	private String tipoDocCliente;

	private String descTipoDocCliente;

	private String nroDocCliente;

	private String indNuevoCliente;

	private String fechaReg;

	private String fechaExp;

	private String tipoAsignacion;
	
	public Ejecutivo() {
		super();
		hijos = new ArrayList<Ejecutivo>();
	}

	public void procesarSeleccion(String[] ids) {
		this.setSeleccionado(false);
		for (int index = 0; index < ids.length; index++) {
			if (ids[index].equals(this.getCodigo())) {
				this.setSeleccionado(true);
				break;
			}
		}

		for (int index = 0; index < this.getHijos().size(); index++) {
			this.getHijos().get(index).procesarSeleccion(ids);
		}
	}

	public String getHtml() {

		StringBuffer sb = new StringBuffer();
		sb.append("<li>");
		sb.append("<div onmouseover=\"return overlib('");
		sb.append(this.getNivel());
		sb.append(" (");
		sb.append(this.getNumero());
		sb.append(")");
		sb
				.append("',CENTER);\" style=\"cursor:hand;\" onmouseout=\"return nd();\">");
		sb.append("<input type=\"checkbox\" ");
		sb.append(" name = 'chkEjecutivos' ");
		if (this.getSeleccionado())
			sb.append(" checked='true' ");
		
		sb.append(" value = '");
		sb.append(this.getCodigo());
		sb.append("'>");
		sb.append(this.getDescripcion());
		sb.append("</div>");
		if (this.getHijos().size() > 0) {
			sb.append("<ul>");
			for (int i = 0; i < this.getHijos().size(); i++) {
				sb.append(getHijos().get(i).getHtml());
			}
			sb.append("</ul>");
		}

		return sb.toString();

	}

	public String getRadio() {

		StringBuffer sb = new StringBuffer();
		sb.append("<li>");
		sb.append("<div onmouseover=\"return overlib('");
		sb.append(this.getNivel());
		sb.append(" (");
		sb.append(this.getNumero());
		sb.append(")");
		sb
				.append("',CENTER);\" style=\"cursor:hand;\" onmouseout=\"return nd();\">");
		sb.append("<input type=\"radio\" ");
		sb.append(" name = 'rdbEjecutivos' ");
		if (this.getSeleccionado())
			sb.append(" checked='true' ");
		sb.append(" value = '");
		sb.append(this.getCodigo());
		sb.append("'>");
		sb.append(this.getDescripcion());
		sb.append("</div>");
		if (this.getHijos().size() > 0) {
			sb.append("<ul>");
			for (int i = 0; i < this.getHijos().size(); i++) {
				sb.append(getHijos().get(i).getRadio());
			}
			sb.append("</ul>");
		}

		return sb.toString();

	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public boolean getSeleccionado() {
		return seleccionado;
	}

	public void setSeleccionado(boolean seleccionado) {
		this.seleccionado = seleccionado;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getNumero() {
		return numero;
	}

	public void setNumero(String numero) {
		this.numero = numero;
	}

	public List<Ejecutivo> getHijos() {
		return hijos;
	}

	public void setHijos(List<Ejecutivo> hijos) {
		this.hijos = hijos;
	}

	public String getNivel() {
		return nivel;
	}

	public void setNivel(String nivel) {
		this.nivel = nivel;
	}

	public String getCodCliente() {
		return codCliente;
	}

	public void setCodCliente(String codCliente) {
		this.codCliente = codCliente;
	}

	public String getNombresCliente() {
		return nombresCliente;
	}

	public void setNombresCliente(String nombresCliente) {
		this.nombresCliente = nombresCliente;
	}

	public String getTipoDocCliente() {
		return tipoDocCliente;
	}

	public void setTipoDocCliente(String tipoDocCliente) {
		this.tipoDocCliente = tipoDocCliente;
	}

	public String getFechaExp() {
		return fechaExp;
	}

	public void setFechaExp(String fechaExp) {
		this.fechaExp = fechaExp;
	}

	public String getFechaReg() {
		return fechaReg;
	}

	public void setFechaReg(String fechaReg) {
		this.fechaReg = fechaReg;
	}

	public String getDescTipoDocCliente() {
		return descTipoDocCliente;
	}

	public void setDescTipoDocCliente(String descTipoDocCliente) {
		this.descTipoDocCliente = descTipoDocCliente;
	}

	public String getIndNuevoCliente() {
		return indNuevoCliente;
	}

	public void setIndNuevoCliente(String indNuevoCliente) {
		this.indNuevoCliente = indNuevoCliente;
	}

	public String getNroDocCliente() {
		return nroDocCliente;
	}

	public void setNroDocCliente(String nroDocCliente) {
		this.nroDocCliente = nroDocCliente;
	}

	public String getTipoAsignacion() {
		return tipoAsignacion;
	}

	public void setTipoAsignacion(String tipoAsignacion) {
		this.tipoAsignacion = tipoAsignacion;
	}

	public String getApeMaterno() {
		return apeMaterno;
	}

	public void setApeMaterno(String apeMaterno) {
		this.apeMaterno = apeMaterno;
	}

	public String getApePaterno() {
		return apePaterno;
	}

	public void setApePaterno(String apePaterno) {
		this.apePaterno = apePaterno;
	}

	public String getNombres() {
		return nombres;
	}

	public void setNombres(String nombres) {
		this.nombres = nombres;
	}

}
